package com.into.common.csv;

/**
 * Implemented by enumerations that define the CSV fields
 * 
 * @author Zied Hamdi
 * @param <T>
 *          the type of the field
 * 
 */
public interface CSVField<T> {

	/**
	 * returns the converter for the field
	 * 
	 * @return
	 */
	CSVConverter<T> getConverter();

	/**
	 * returns the name of the bean property
	 * 
	 * @return
	 */
	String getName();

	/**
	 * says if the field is only present in csv (in which case, the value passed
	 * to the converter is the {@link Object} instance (seen there is no
	 * correspondant field in the object
	 * 
	 * @return
	 */
	boolean isOnlyCSV();

}
